<?php

require_once("dao/Dao.php");

class MailDao extends Dao {

    public static function EnvoiMail($type, $client, $fichier) {
        global $logger;
        // message
        $message = '<p>Bonjour,</p>
                    <p>Une action a été effectuée:</p>
                    <p>' . $type . ' pour le client ' . $client . '</p>
                    <p>' . $fichier . '</p>
                    <p> Cordialement </p>';

        return self::sendMail(
            ORANGE_MAIL,
            $type . ' - ' . $client,
            ORANGE_MAIL_from,
            null,
            $message
        );
    }

    //mail offre com
    public static function EnvoiMailCommandeFixe($type, $client) {

        // message
        $message = '<p>Bonjour,</p>
                    <p>Une action a été effectuée:</p>
                    <p>' . $type . ' pour le client ' . $client . '</p>
                    <p> Cordialement </p>';

        return self::sendMail(
            ORANGE_1_MAIL,
            $type . ' - ' . $client,
            ORANGE_1_MAIL_from,
            null,
            $message
        );
        
    }
    
    //envoie de l'email creation client
    public static function EnvoiMailCreationClient($login, $password, $mail) {

        $msg[] = 'Vous pouvez d&egrave;s maintenant acc&eacute;der &agrave; votre espace client sur ' . PRESTATAIRE_WEB;
        $msg[] = 'Utilisateur: ' . $login . '<br>
                  Mot de passe: ' . $password . '<br>';
        $msg[] = 'Cordialement.';
        
        return self::sendMail(
            $mail,
            'Accédez à votre compte',
            null,
            'Votre compte a &eacute;t&eacute; initialis&eacute; .',
            $msg
        );
    }

    //envoie de l'email facture client
    public static function EnvoiMailFacture($mailclient, $factures) {
        // Message
        $msg = '
        <p>Bonjour,</p>
	<p>Veuillez trouver en pièce jointe votre facture au format électronique.<br>
	Nous vous invitons à utiliser votre interface de facturation en ligne ' . PRESTATAIRE_WEB . '.<br>
        si vous souhaitez obtenir le détail de vos consommations téléphoniques.
        En cas de questions auprès de nos services au sujet de cette facture, merci de rappeler le numéro de référence (COMPTE CLIENT)</p>
        <br>
	
	<!--<a href="' . PRESTATAIRE_WEB . '/' . str_replace("_temp", "", $factures[0]) . '">Lien de téléchargement.</a><br>-->

        Nous restons à votre disposition pour toutes informations complémentaires.<br>
        Le Service client ' . PRESTATAIRE_NOM . '. <br>
	Cordialement.	' . "\r\n";
        
        return self::sendMail(
            $mailclient,
            'Votre Facture',
            null,
            null,
            array($msg),
            null,
            null,
            $factures
        );
        
    }

    /**
     * Envoie le mail d'un facture ponctuelle
     * @param stdClass $facture
     */
    public static function EnvoiMailFacturePonctuelle(stdClass $facture) {
        
        return self::sendMail(
                $facture->client->email,
                'Votre Facture',
                null,
                null,
                null,
                'mail/facture-ponctuelle.html.twig',
                array('facture' => $facture,'prestataire_web' => PRESTATAIRE_WEB),
                array(__DIR__ . '/../../' . $facture->pdf)
            );
    }
    
    /**
     * Envoie un mail
     * @global type $twig
     * @param string $to
     * @param type $subject
     * @param type $from
     * @param type $title
     * @param type $body
     * @param string $template
     * @param array $params
     * @param array $attachments
     * @return type
     */
    public static function sendMail( $to, $subject, $from = PRESTATAIRE_MAIL, $title = null,$body = null, $template = null, array $params = null, array $attachments = null )
    {
        global $twig;
        //si mode dev, envoie mail au compte de test
        if (MM_DEV_MODE) {
            $to = MM_DEV_MAIL;
        }
        if(empty($template)){
            $template = 'mail/default.html.twig';
        }
        if(empty($params)){
            $params = array();
        }
        
        $params['body'] = $body;
        $params['title'] = is_null($title)? $subject : $title;
        
        // Create the Transport
        $transport = Swift_SmtpTransport::newInstance(MM_MAIL_SMTP, MM_MAIL_PORT, 'tls');
        $transport->setUsername(MM_MAIL_USERNAME);
        $transport->setPassword(MM_MAIL_PASSWORD);

        // Create the Mailer using your created Transport
        $mailer = Swift_Mailer::newInstance($transport);
        // Create the message
        $message = Swift_Message::newInstance()
                ->setSubject($subject)
                ->setFrom(PRESTATAIRE_MAIL_1, PRESTATAIRE_NOM_1)
                ->setTo($to)
                ->setBody(sprintf($twig->render($template, $params)), 'text/html');
        //pièces jointes
        if (!empty($attachments)) {
            foreach ($attachments as $attachment) {
                if ( file_exists($attachment)) {
                    $message->attach(Swift_Attachment::fromPath($attachment));
                }
            }
        }

        return $mailer->send($message);
    }

}
